package uniandes.ash.principal.servicios;

import java.util.ArrayList;

import uniandes.ash.principal.utilitarios.Constantes;

public class ServicioEnviarAlarma {

    private static ServicioEnviarAlarma solitario = null;
    private ArrayList<String> alarmaPolicia;
    private ArrayList<String> alarmaBomberos;
    private ArrayList<String> alarmaPropietario;
    /**
     * Se define como el solitario
     * @return
     */
    public static ServicioEnviarAlarma getServicio() {
        if(solitario == null)
            solitario = new ServicioEnviarAlarma();
        return solitario;
    }

    public ServicioEnviarAlarma ()
    {
        alarmaBomberos=new ArrayList<String>();
        alarmaPolicia=new ArrayList<String>();
        alarmaPropietario=new ArrayList<String>();

    }

    
    
    public void enviarAlarma(String trama)
    {

        String[] division=trama.split(";");
        String[] tramaDividida=division[0].split("");
        System.out.println("Trama dividida: "+tramaDividida[2]);
        if (tramaDividida[2].equals("0")) {
            enviarPolicia(division[1]);
        }else if (tramaDividida[2].equals("1"))
        {
            enviarBombero(division[1]);
        }
        enviarPropietario(trama,division[1]);
        System.out.println("casa: "+division[1]);




    }
    private void enviarBombero(String idCasa)
    {
        if (!this.alarmaBomberos.contains(idCasa)) 
        {
            this.alarmaBomberos.add(idCasa);
            System.out.println("Mensaje enviado a bomberos");
            enviarMail(Constantes.BOMBEROS);
         }
    }

    private void enviarPolicia(String idCasa)
    {
        if (!this.alarmaPolicia.contains(idCasa)) 
        {
            this.alarmaPolicia.add(idCasa);
            System.out.println("Mensaje enviado a policia");
            enviarMail(Constantes.POLICIA);
        }
    }

    private void enviarPropietario(String trama, String idCasa){

        if (!this.alarmaPropietario.contains(trama)) 
        {
            this.alarmaPropietario.add(trama);
            System.out.println("Mensaje enviado a propietario");
            enviarMail(idCasa);

        }
    }

    public void enviarMail(String codigoMail)
    {
        String mailPropietario=ServicioGeneral.getServicio().getPropietarios().get(codigoMail).getMail();
        System.out.println(mailPropietario);
    }


}
